<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var obj = {
            userscore:[
                {
                    username:"老王",
                    score:60
                },
                {
                    username:"老李",
                    score:70
                },
                {
                    username:"老高",
                    score:80
                },
                {
                    username:"老洪",
                    score:90
                }
            ],
            // sum:
        };

        // Object.defineProperties(obj,{
        //     sum:{
        //         get:function(){
        //             // 拿到对应数组
        //             // console.log(this.userscore);
        //             var arr = this.userscore;

        //             // 求和函数
        //             return arr.reduce(function(pre,item){
        //                 // 拿到每个学员对应的分数
        //                 // console.log(item.score);
        //                 return pre+item.score;
        //             },0);
        //             // return 888;
        //         }
        //     }
        // });
        
        Object.defineProperties(obj,{
            // 求和
            sum:{
                get:function(){
                    return this.userscore.reduce(function(pre,item){
                        return pre+item.score;
                    },0);
                }
            },
            avg:{
                get:function(){
                    // 所有分数 得出的 平均数
                    // 总分数/人数 = 平均数
                    return this.sum / this.userscore.length;
                    // return 123;
                }
            }
        });
        // 给对象添加数组值
        obj.userscore.push({
            username:'老张',
            score:100
        });


        // 获取平均数
        console.log(obj.avg);

        // 获取总分数
        console.log(obj.sum);


        // 属性 - 读写器 - 实现 分数求和

        // obj.sum //获得总分数

        // console.log(obj.sum);



        // reduce

        // var arr = [5,6,7,8];

        // 第一个参数 是 函数
            // 函数上的2个参数
            // 1. pre 上一次循环所得到的返回值
            // 2. item 当前循环数据
        // 第二个参数 是 初始值,第一次循环的pre值
        // var n = arr.reduce(function(pre,item){
        //     console.log(pre,item);
        //     return pre + item;
        // },0);

        // console.log(n);


    </script>
</body>
</html>